/*!
	\file ErreurSyntaxique.h
	\brief La spécification de la classe ErreurSyntaxique

	Décrit la liste des méthodes et attributs associés à la class ErreurSyntaxique
	\author Arnaud MAILLET
	\date 03.01.2009
*/

/*! 
	\class ErreurSyntaxique
	\brief La classe dérive de la classe Erreur et permet de representer les erreurs syntaxiques.

	Cette classe permet de représenter sous la forme d'un objet les erreurs syntaxiques que l'interpreteur peut rencontrer
	Les méthodes suivantes sont associées à un objet de type ErreurSyntaxique :
	\li afficher
*/
#ifndef ERREURSYNTAXIQUE_H_
#define ERREURSYNTAXIQUE_H_
#include <string>
#include "Erreur.h"
#include "Symbole.h"
using namespace std;
 
class ErreurSyntaxique: public Erreur
{
public:
	/*! 
	\fn ErreurSyntaxique(string msg, int ligne, int colonne, Symbole attendu, Symbole trouve) throw()
	\brief Constructeur de la classe ErreurSyntaxique.

	Ce constructeur fixe les valeurs requises pour une erreur syntaxique.
	\param msg - le message de l'erreur
	\param ligne - la ligne de l'erreur
	\param colonne - la colonne de l'erreur
	\param attendu - symbole attendu par l'interpreteur
	\param trouve - symbole trouvé par l'interpreteur
        */
    	ErreurSyntaxique(string msg, int ligne, int colonne, Symbole attendu, Symbole trouve) throw();

	/*!
	\fn void afficher()
	\brief Permet d'afficher les caractéristiques d'une erreur syntaxique
	*/
	void afficher();

	/*!
	\fn ~ErreurSyntaxique() throw()
	\brief Destructeur de la classe ErreurSyntaxique.

	Ce destructeur permet de détruire un objet ErreurSyntaxique.
	*/
	~ErreurSyntaxique() throw();
 
private:
	/*!
	\var Symbole attendu
	\brief  Contient le symbole attendu par l'interpreteur
	*/
	Symbole attendu;

	/*!
	\var Symbole trouve
	\brief  Contient le symbole trouvé par l'interpreteur
	*/
	Symbole trouve;
};
#endif
